跳到主要内容

9.设计摩尔型有限状态机

Q4:一个大型水库为多个用户提供水源。为了保持水位足够高,设置了三个传感器,它们在垂直方向上每隔5英寸放置一个。当水位高于最高传感器(S3)时,输入流量应为零。当水位低于最低传感器(S1)时,流量应为最大(此时标称流量阀和补充流量阀均打开)。当水位位于上下传感器之间时,流量由两个因素决定:水位本身以及上次传感器变化前的水位。每个水位都对应有一个标称流量,具体如下面表格所示。如果传感器的变化表明前一水位低于当前水位,则应执行标称流量。如果前一水位高于当前水位,则应通过打开补充流量阀(由FR控制)来增加流量。请为此水库控制器绘制摩尔型状态图。明确标示出所有状态转换及每个状态的输出。你的状态机输入为S1、S2和S3;输出为FR1、FR2、FR3和ΔFR。

alt text

同时包含一个高电平有效的同步复位功能,该功能将状态机重置到一个等效于长时间低水位的状态(无传感器被触发,且所有四个输出都被激活)。

模块声明

module top_module (
input clk,
input reset,
input [3:1] s,
output fr3,
output fr2,
output fr1,
output dfr
);

做题区